#ifndef SQLITEOPERATOR_H
#define SQLITEOPERATOR_H

#include <QObject>
#include <QSqlDatabase>
#include <QSqlQuery>
#include <QSqlError>
#include <QDebug>

typedef struct
{
    int id;
    QString name;
    int age;
}w2dba;


class epyRcd
{

public:
    epyRcd()
    {

    }
    epyRcd(int epyID, int faceID, QString name, QString sex, QString part, QString phone)
        :m_epyID(epyID), m_faceID(faceID), m_name(name), m_sex(sex), m_part(part),m_phone(phone)
    {

    }
public:
    int m_epyID;//员工编号
    int m_faceID;//面部识别数据库编号
    QString m_name; //员工名字
    QString m_sex; //员工性别
    QString m_part;//员工所属部门
    QString m_phone; //员工电话
};


class SqliteOperator : public QObject
{
    Q_OBJECT
public:
    explicit SqliteOperator(QObject *parent = nullptr)
    {
        Q_UNUSED(parent);
    };
    SqliteOperator(const QString &db_name);
    // 1--打开数据库
    bool open_db(void);
    // 2--创建数据表
    void create_tbl(const QString &createtbl_sql);//希望创建数据表的时候，能够指定名字
    // 3--判断数据表是否存在
    bool is_tbl_exisit(const QString& tbl_name);
    // 4--插入数据
    void single_insert_data(epyRcd &singleData);
    // 5--查询全部数据
    void query_whole_tbl(const QString& tbl_name);

#if 0
    // 插入数据
    void single_insert_data(w2dba &singleData); // 插入单条数据
    //void multi_insert_data(QList<w2dba> &moreData); // 插入多条数据
    // 修改数据
    void modify_data(int id, QString name, int age);
    // 删除数据
    void delete_data(const QString &tbl_name, int id);
#endif
    // 删除数据表
    void delete_tbl(const QString& tableName);
    // 关闭数据库
    void close_db(void);
private:
    QSqlDatabase m_db;// 用于建立和数据库的连接
signals:

};

#endif // SQLITEOPERATOR_H
